#ifndef HASHINTERSECTIONBOX_H_JM_20120913
#define HASHINTERSECTIONBOX_H_JM_20120913
/** @file HashIntersectionBox.h
* _OK_ Obsahuje HashIntersectionBox vykonavajuci logiku 2 kroku db operacie 
* prieniku pomocou hashovania. 
**/

// ##
#include "HashActivityBufferedOutputBox.h"
#include "HashActivityHandlerImpls.h"

namespace jm4bbx {
	/** 
	* HashIntersectionBox vykonava logiku 2 kroku db operacie prieniku pomocou 
	* hashovania.
	* 
	* 
	* Tato trieda obstarava logiku pre obe varianty prieniku tj. klasicky 
	* mnozinovy prienik a aj preienik pre multiset prevedenie.
	* 
	**/
	template<class HashBoxType>
	class HashIntersectionBox : 
		public HashActivityBufferedOutputBox<HashBoxType, HashIntersectionHandler<HashBoxType>> {
	public:
		HashIntersectionBox(const BoxParamPack& p) 
			: HashActivityBufferedOutputBox(p)	{ }
	protected:

		/// Synchronizacia je nutna pretoze pre kazdu najdeny prienik je 
		/// potrebne zasiahnut do hashovacej tabulky.
		virtual bool synchronize() const  override { return true; };

	};



} // namespace jm4bbx

#endif
